package org.gourpg.model.menu;

import java.sql.Date;

/**
 * 路由功能配置实体
 */
public class RouteDetail {
    /**
     * 路由路径
     */
    private String routePath;

    /**
     * 路由HTTP方法
     */
    private String routeMethod;

    /**
     * 路由源码路径（能解析到就要，解析不到就算了）
     */
    private String routeClass;

    /**
     * 路由来源，通常为系统名称
     */
    private String routeSource;

    /**
     * 路由新增日期
     */
    private Date routeStartDate;

    /**
     * 路由消失日期
     */
    private Date routeEndDate;

    /**
     * 路由功能类型（管理、维护、查看）字典：POWER_TYPE
     */
    private String routeType;

    /**
     * 路由当前状态（正在使用、失效）字典：ROUTE_STATUS
     */
    private String routeStatus;

    /**
     * 功能名称
     */
    private String routeName;

    /**
     * 功能说明
     */
    private String routeRemark;

    public RouteDetail() {
    }

    public String getRoutePath() {
        return this.routePath;
    }

    public String getRouteMethod() {
        return this.routeMethod;
    }

    public String getRouteClass() {
        return this.routeClass;
    }

    public String getRouteSource() {
        return this.routeSource;
    }

    public Date getRouteStartDate() {
        return this.routeStartDate;
    }

    public Date getRouteEndDate() {
        return this.routeEndDate;
    }

    public String getRouteType() {
        return this.routeType;
    }

    public String getRouteStatus() {
        return this.routeStatus;
    }

    public String getRouteName() {
        return this.routeName;
    }

    public String getRouteRemark() {
        return this.routeRemark;
    }

    public void setRoutePath(String routePath) {
        this.routePath = routePath;
    }

    public void setRouteMethod(String routeMethod) {
        this.routeMethod = routeMethod;
    }

    public void setRouteClass(String routeClass) {
        this.routeClass = routeClass;
    }

    public void setRouteSource(String routeSource) {
        this.routeSource = routeSource;
    }

    public void setRouteStartDate(Date routeStartDate) {
        this.routeStartDate = routeStartDate;
    }

    public void setRouteEndDate(Date routeEndDate) {
        this.routeEndDate = routeEndDate;
    }

    public void setRouteType(String routeType) {
        this.routeType = routeType;
    }

    public void setRouteStatus(String routeStatus) {
        this.routeStatus = routeStatus;
    }

    public void setRouteName(String routeName) {
        this.routeName = routeName;
    }

    public void setRouteRemark(String routeRemark) {
        this.routeRemark = routeRemark;
    }

    public boolean equals(final Object o) {
        if (o == this) return true;
        if (!(o instanceof RouteDetail)) return false;
        final RouteDetail other = (RouteDetail) o;
        if (!other.canEqual((Object) this)) return false;
        final Object this$routePath = this.getRoutePath();
        final Object other$routePath = other.getRoutePath();
        if (this$routePath == null ? other$routePath != null : !this$routePath.equals(other$routePath)) return false;
        final Object this$routeMethod = this.getRouteMethod();
        final Object other$routeMethod = other.getRouteMethod();
        if (this$routeMethod == null ? other$routeMethod != null : !this$routeMethod.equals(other$routeMethod))
            return false;
        final Object this$routeClass = this.getRouteClass();
        final Object other$routeClass = other.getRouteClass();
        if (this$routeClass == null ? other$routeClass != null : !this$routeClass.equals(other$routeClass))
            return false;
        final Object this$routeSource = this.getRouteSource();
        final Object other$routeSource = other.getRouteSource();
        if (this$routeSource == null ? other$routeSource != null : !this$routeSource.equals(other$routeSource))
            return false;
        final Object this$routeStartDate = this.getRouteStartDate();
        final Object other$routeStartDate = other.getRouteStartDate();
        if (this$routeStartDate == null ? other$routeStartDate != null : !this$routeStartDate.equals(other$routeStartDate))
            return false;
        final Object this$routeEndDate = this.getRouteEndDate();
        final Object other$routeEndDate = other.getRouteEndDate();
        if (this$routeEndDate == null ? other$routeEndDate != null : !this$routeEndDate.equals(other$routeEndDate))
            return false;
        final Object this$routeType = this.getRouteType();
        final Object other$routeType = other.getRouteType();
        if (this$routeType == null ? other$routeType != null : !this$routeType.equals(other$routeType)) return false;
        final Object this$routeStatus = this.getRouteStatus();
        final Object other$routeStatus = other.getRouteStatus();
        if (this$routeStatus == null ? other$routeStatus != null : !this$routeStatus.equals(other$routeStatus))
            return false;
        final Object this$routeName = this.getRouteName();
        final Object other$routeName = other.getRouteName();
        if (this$routeName == null ? other$routeName != null : !this$routeName.equals(other$routeName)) return false;
        final Object this$routeRemark = this.getRouteRemark();
        final Object other$routeRemark = other.getRouteRemark();
        if (this$routeRemark == null ? other$routeRemark != null : !this$routeRemark.equals(other$routeRemark))
            return false;
        return true;
    }

    protected boolean canEqual(final Object other) {
        return other instanceof RouteDetail;
    }

    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $routePath = this.getRoutePath();
        result = result * PRIME + ($routePath == null ? 43 : $routePath.hashCode());
        final Object $routeMethod = this.getRouteMethod();
        result = result * PRIME + ($routeMethod == null ? 43 : $routeMethod.hashCode());
        final Object $routeClass = this.getRouteClass();
        result = result * PRIME + ($routeClass == null ? 43 : $routeClass.hashCode());
        final Object $routeSource = this.getRouteSource();
        result = result * PRIME + ($routeSource == null ? 43 : $routeSource.hashCode());
        final Object $routeStartDate = this.getRouteStartDate();
        result = result * PRIME + ($routeStartDate == null ? 43 : $routeStartDate.hashCode());
        final Object $routeEndDate = this.getRouteEndDate();
        result = result * PRIME + ($routeEndDate == null ? 43 : $routeEndDate.hashCode());
        final Object $routeType = this.getRouteType();
        result = result * PRIME + ($routeType == null ? 43 : $routeType.hashCode());
        final Object $routeStatus = this.getRouteStatus();
        result = result * PRIME + ($routeStatus == null ? 43 : $routeStatus.hashCode());
        final Object $routeName = this.getRouteName();
        result = result * PRIME + ($routeName == null ? 43 : $routeName.hashCode());
        final Object $routeRemark = this.getRouteRemark();
        result = result * PRIME + ($routeRemark == null ? 43 : $routeRemark.hashCode());
        return result;
    }

    public String toString() {
        return "RouteDetail(routePath=" + this.getRoutePath() + ", routeMethod=" + this.getRouteMethod() + ", routeClass=" + this.getRouteClass() + ", routeSource=" + this.getRouteSource() + ", routeStartDate=" + this.getRouteStartDate() + ", routeEndDate=" + this.getRouteEndDate() + ", routeType=" + this.getRouteType() + ", routeStatus=" + this.getRouteStatus() + ", routeName=" + this.getRouteName() + ", routeRemark=" + this.getRouteRemark() + ")";
    }
}
